package com.kafka.kafkatest;

import javax.imageio.ImageIO;
import java.awt.*;
import java.awt.image.BufferedImage;
import java.io.File;

public class ImageTextChanger {
    public static void main(String[] args) {
        try {
            // 读取原始图像文件
            File inputFile = new File("D:\\siyue\\图片\\微信图片_20241225115349.jpg");
            BufferedImage image = ImageIO.read(inputFile);

            // 创建Graphics2D对象
            Graphics2D g2d = (Graphics2D) image.getGraphics();

            // 设置字体样式和颜色
            Font font = new Font("Arial", Font.BOLD, 40);
            g2d.setFont(font);
            g2d.setColor(Color.white);

            String text = "这是一个需要换行的文字示例，我们将会实现自动换行的功能。DDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD";
            FontMetrics fm = g2d.getFontMetrics();

            // 定义初始位置
            int x = 10; // 横坐标
            int y = 30; // 纵坐标

            // 按照空格分割文本，逐行绘制
            for (String line : text.split(" ")) {
                // 检查当前行是否超出图片边界，超出则换行
                if (fm.stringWidth(line) + x > 10) {
                    x = 10; // 重置 x 值
                    y += fm.getHeight(); // 增加 y 值
                }
                g2d.drawString(line, x, y); // 绘制文本
                x += fm.stringWidth(line) + 5; // 更新 x 值，为下一个绘制文本留出空间
            }
            // 绘制文字
//            g2d.drawString("Hello World阿斯顿撒旦撒adasdasd大苏打ddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd", 100, 3500);

            // 写入输出文件
            File outputFile = new File("D:\\siyue\\图片\\output.jpg");
            ImageIO.write(image, "jpg", outputFile);
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}
